package org.example.aiagent.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("guns")
public class Gun implements Serializable {

    @TableId(value = "gun_id", type = IdType.AUTO)
    private Integer gunId;

    @TableField("gun_name")
    private String gunName;

    @TableField("gun_type")
    private String gunType;

    @TableField("ammo_type")
    private String ammoType;

    @TableField("base_damage")
    private Integer baseDamage;

    @TableField("effective_range")
    private String effectiveRange;

    @TableField("recoil_control")
    private Integer recoilControl;

    @TableField("handling_speed")
    private Integer handlingSpeed;

    @TableField("stability")
    private Integer stability;

    @TableField("hipfire_accuracy")
    private Integer hipfireAccuracy;

    @TableField("armor_damage")
    private Integer armorDamage;

    @TableField("fire_rate")
    private Integer fireRate;

    @TableField("magazine_capacity")
    private Integer magazineCapacity;

    @TableField("muzzle_velocity")
    private Integer muzzleVelocity;

    @TableField("sound_range")
    private Integer soundRange;

    @TableField("is_available")
    private Boolean isAvailable;

    @TableField("created_at")
    private Date createdAt;

    @TableField("updated_at")
    private Date updatedAt;
}